The present invention relates to a user interface for a computer system and, more particularly, to a printing interface enabling printer applied formatting to be conveniently incorporated into printed documents.
One of the most important capabilities of computer systems is the ability to reproduce “electronic documents,” created and stored in the computer, as hard copy or printed output. Computer printers are capable of print quality rivaling that of traditional printing methods and can incorporate advanced printing operations to facilitate the assembly of the printed output into complex documents. However, the distributed nature of the software architecture of computer systems can make certain document formatting tasks complicated and awkward.
The hardware of a computer system is modular in nature, comprising a central processing unit with attached input, output, and storage devices. The input, storage, and output devices, such as printers, are available from a number of manufacturers and incorporate various operating mechanisms and optional features. To permit components with disparate specifications and internal construction to operate together, the computer system's software is distributed through several programs that are designed to interact while maintaining a level of isolation from each other. The physical operation of the modular input, output, and storage devices is controlled by specialized software, known collectively as device drivers, designed to enable other programs installed on the computer to work with a particular device without concern for the specifics of the device's hardware or internal language. The device drivers are stored separately and interact with the computer's operating system, the program that coordinates and manipulates the hardware and organizes the storage of files.
Electronic documents are data files created in application programs. Application programs such as word processing, spreadsheet, database, and drawing programs provide an interface between the user and the computer permitting the user to input, organize, and manipulate data to accomplish some task. Application programs provide extensive facilities for formatting electronic documents created in the application. These capabilities include the page formatting elements of style and presentation; such as margins, indents, and different sizes, weights, and styles of type; and division of the document into logical pages. To reduce their size and complexity, application programs are also modular in nature.
Output or storage of an electronic document requires that the application program interact with the operating system which, in turn, interacts with the device driver that controls the physical operation of the output or storage device. To print a document, the user invokes the print command in the user interface of the application program. An application program print interface will be accessed enabling the user to direct the printer to produce the printed output. A typical graphical, application program print user interface is illustrated in FIG. 1. In the case of the application program print user interface of FIG. 1, mouse clicking “OK” directs the computer system to print the document. A copy of the electronic document, with its formatting instructions, is forwarded to the operating system as a print job. The operating system and the printer driver, the device driver for the attached printer, convert the data stream that comprises the print job to electric control signals that are necessary to drive the printing mechanism of the printer and produce printed output.
A typical application program print interface also makes available a limited number of printing options. Since the application program must work with a number of printers the options available at the application program-print interface are limited to a few standardized options, such as selecting the number of copies or selecting some part of the document to be printed.
Printers can be equipped to perform a number of printing operations beyond the simple conversion of an electronic page of text or graphics to a printed page. Selection of printing stock; printing in duplex (two-side) or simplex (single-side) mode; modification of page layout by mirroring, rotating, negating or zooming; printing multiple pages on a single sheet of paper; grouping or sorting and stapling collated pages are examples of the special printing operations available with certain printers. These special printing operations alter the operation of the printer's printing and paper handling mechanisms to produce the changes necessary to convert the formatted electronic document to the printed output with the desired printer applied formatting. Selection of these special printing operations and their application to a document is through a user interface for the printer driver. In the application program print user interface of FIG. 1 the user can access the printer driver interface by selecting the “printer” button. FIG. 2 is an example of a printer driver user interface with tabbed, layered sub-windows for specific special operations. Since these special printing operations alter the operation of the printer's mechanism, the selected operations will apply to the entirety of the print job as it delivered to the operating system and will persist for each subsequent print job until the user accesses the printer driver user interface and resets the options.
Since the formatting of the electronic document and the operation of the printer's mechanism to produce the special printing operations are controlled by separate programs some desirable printing operations are difficult and may not be possible without modifying the original electronic document from the application program. For example, inserting a blank page in an “as printed” document requires the user to insert a blank page in the original electronic document from the application program. Or, if the user desires to apply duplex printing to only part of the document it would necessary to select multiple ranges of pages in the application program and print each selection separately or divide the original electronic document into two or more documents and print each separately. In either case, manual collation would be necessary for multiple copies.
While the electronic document can be altered to accomplish these document composition operations, it is awkward to do so and, in some cases, printing the same electronic document for assembly in more than one way may be desirable. For example, a draft of a document might be printed for review without incorporating the special operations desired for assembly into the final published form. Selecting and deselecting printer options is awkward requiring the user to sort through several menus and selection choices and to remember how each selection is accessed and what printer options are currently selected.
Distributing the computer system's software through several programs has increased the number of hardware options that are useable in building a system but it creates some operating inefficiencies and disincentives to alleviating these inefficiencies. The printer driver is supplied by the printer vendor and written for the specific printer. Since the printer driver contains the software necessary for utilizing the special printing operations available with the specific printer and a user interface, the printer driver interface, the printer vendor is likely to see any inefficiency in using the printer driver as an application specific problem. On the other hand, the application program is usually supplied by a party, other than the printer supplier, that specializes in that type of software. Improving the efficiency of the interface between the application program and the wide variety of printer drivers is difficult and is likely to be seen as a printer specific problem.
What is desired is a user interface that will easily enable the user to apply non-persistent formatting changes, useful in composing the printed output, to individual pages or groups of pages of an electronic document without altering the original electronic document.